今天要做個簡單搜尋資料內容的功能,但是要怎麼實作到網頁上呢?
在資料庫上這樣的功能叫做
SELECT 欄位 FROM [TABLE]
WHERE [被比對的欄位] LIKE '比對的條件(規則)'
介紹較常用的兩種比對規則:
1.%
用來代表0個到多個任意字元,任意長度都會符合比對的條件
查詢單字為例:'a%'
就會產生所有字首有a的單字:a an able apple.......等等
'%a%'
任何內含有a字母的單字:a apple banana cake...等等
2._
用來代表單個任意字元,必須完全符合的字元長度
Example:
查詢英文單字'a_'
就會產生a後面接1個任意字母的單字:an as....等等
回到正題
protected void txtSearch_TextChanged(object sender, EventArgs e)
{
//SqlDataSource1.SelectCommand = "SELECT [Title], [Content], [Date], [Id] FROM [Table]";
if (!string.IsNullOrWhiteSpace(txtSearch.Text))
{
SqlDataSource1.SelectCommand += "WHERE [Content] LIKE '%'+@search+'%'";
SqlDataSource1.SelectParameters.Add("search", txtSearch.Text);
}
}
如果有值就加上一段模糊查詢條件
這樣看起來應該就沒問題!!!
雖然第一次查詢會沒有問題,但是反覆時....登登!
在新增參數前都要有好習慣,記得先清空參數就不會有這問題
簡單完成!!!
===========================================================
小記:
字串內容過長時要怎麼截斷了?(非資料庫方法)
找不到方法就寫個簡單的方法...
protected string CheckStringLength(string str ,int length )
{
int limit = length;//長度限制
if (str.Length > limit)
{
return str.Substring(0, limit) + "...";
}
else
{
return str;
}
}